Currently, multimedia accessories in cellular telephones and other portable electronic devices operate with audio signals sampled at a variety of sampling rates. In some applications it is necessary to convert between many input and output frequency pairs to support different accessories and features, such as audio signal mixing in video games. Conversion between input and output frequency pairs is also required to support peripheral device protocols, for example, Bluetooth headsets and other devices.
Sampling rate conversion is currently implemented in cellular telephones and other portable electronic devices only for a few input and output frequency pairs using a traditional sampling rate conversion approach. In the traditional approach, the input sampling rate fin and output sampling rate fout are predetermined and fixed. The sampling rate converter is implemented as a series of conversion stages, wherein the conversion between fin and fout is done by first converting fin to f1, then f1 to f2, . . . , fn-1 to fn, and finally fn to fout. Every stage converts its input sampling frequency by a factor of L/M. Each conversion stage is comprised of an up-sampler by factor L, a low-pass filter and a down-sampler by factor M. The low-pass filter limits the bandwidth to the min(fk/2 M, fk/2 L).
The traditional multi-stage approach to sampling rate conversion is, however, impractical in applications requiring conversion between many different input and output frequency pairs, since multiple filtering stages must be implemented for each pair. The traditional approach requires substantial amounts of memory for code implementation. In some applications, the traditional sampling rate conversion approach is MIPS intensive, depending on the number of stages necessary to perform the conversion. The traditional approach is also relatively inflexible since additional low-pass filters must be added to the filter bank for each new sampling rate and each new conversion requirement.
A known alternative to the traditional multi-stage sampling rate conversion approach is to provide universal sampling rate conversion for arbitrary input and output sampling rates. The alternative approach uses input samples and a table of sinc function values in order to calculate samples at an output sampling rate. Different elements of the table are read based on input and output sampling frequencies to determine the necessary indices of the table elements.
The universal sampling rate conversion approach is limited in the down-sampler case since there is a requirement that the input signal have a bandwidth B, such that 2B<fout. According to Shannon's theorem, a signal may be reconstructed from its samples by bandlimited interpolation when the condition 2B<fout is satisfied, where B is the bandwidth of the input signal and fOUT is the output sampling rate. These conditions are not satisfied for many applications including the downsampling of audio signals in cellular telephones and other devices. For these and other applications, it is necessary to pre-filter the input signals in order to appropriately limit their bandwidth before executing the down-sampler portion using this known universal approach. However, pre-filtering is impractical since different low-pass filter combinations are required for different input and output frequencies and it would be necessary to maintain a bank of low-pass filters to process input signals before the sampling rate conversion.
The various aspects, features and advantages of the disclosure will become more fully apparent to those having ordinary skill in the art upon careful consideration of the following Detailed Description thereof with the accompanying drawings described below.